package be.xios.projectquiz.player;

import java.awt.FlowLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;

import be.xios.projectquiz.engine.EngineDB;

import net.miginfocom.swing.MigLayout;

/// <summary>
/// Deze klasse word gebruikt om groepen te registreren bij een zaalquiz
/// </summary>
/// <author>Flemming Bosch</author>
@SuppressWarnings("serial")
public class PlayerGroupRegister extends JFrame{

	private JPanel groepPanel;
	private TitledBorder groepBorder;
	private JTextField groepField;
	private JTextField spelerEmailTxt;
	private JLabel groepLabel;
	private JLabel spelerEmailLbl;
	private JButton btnSubmit;
	private EngineDB edb = new EngineDB();
	
	/// <summary>
	/// Dit is de default constructor waar de GUI word in aangemaakt.
	/// </summary>
	/// <author>Flemming Bosch</author>
	public PlayerGroupRegister(){
		super("Registreer een groep!");
		setLayout(new FlowLayout());
		
		//Nieuwe GroepPanel aanmaken
		groepPanel = new JPanel(new MigLayout());
			groepBorder = BorderFactory.createTitledBorder("Groepsgegevens");
			groepBorder.setTitleJustification(TitledBorder.LEFT);
			groepPanel.setBorder(groepBorder);
		
		groepField = new JTextField(15);
		spelerEmailTxt = new JTextField(15);
		groepLabel = new JLabel("Groepsnaam:"); //De extra spaties zijn nodig voor de afstand tussen het label en textfield
		spelerEmailLbl = new JLabel("Groepsleider Email : ");
		btnSubmit = new JButton("Submit");
		btnSubmit.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				//Als er op de button geklikt word, de groepsnaam met ID toevoegen aan de DB
				if(arg0.getSource() == btnSubmit){
					String email = spelerEmailTxt.getText();
					String groepnaam = groepField.getText();
				
					//Groep toevoegen aan de DB
					edb.InsertGroup(groepnaam, email);

					//Textfields clearen
					spelerEmailTxt.setText("");
					groepField.setText("");
					
					//Form closen
					Window window = SwingUtilities.getWindowAncestor(groepPanel);
					window.dispose();
				}
				
			}
		});
		
		groepPanel.add(groepLabel);
		groepPanel.add(groepField,"wrap");
		groepPanel.add(spelerEmailLbl);
		groepPanel.add(spelerEmailTxt,"wrap");
		
		add(groepPanel);
		add(btnSubmit,1);
	}
}
